package br.com.cs.model;

import java.io.Serializable;

public class Usuario implements Serializable {
    private Integer id;
    private String nome;
    private String descricao;
    private String email;
    private boolean membroVisualizar;
    private boolean membroEditar;
    private boolean membroCriar;
    private boolean membroExcluir;
    private boolean membroRelatorios;
    private boolean visitanteVisualizar;
    private boolean visitanteEditar;
    private boolean visitanteCriar;
    private boolean visitanteExcluir;
    private boolean visitanteRelatorios;
    private boolean tesourariaVisualizar;
    private boolean tesourariaEditar;
    private boolean tesourariaCriar;
    private boolean tesourariaExcluir;
    private boolean tesourariaRelatorios;
    private boolean administracaoVisualizar;
    private boolean administracaoEditar;
    private boolean administracaoCriar;
    private boolean administracaoExcluir;
    private boolean administracaoRelatorios;

    public Usuario() {
    }
    
    

    public Usuario(Integer id, String nome, String descricao, String email, boolean membroVisualizar, boolean membroEditar, boolean membroCriar, boolean membroExcluir, boolean membroRelatorios, boolean visitanteVisualizar, boolean visitanteEditar, boolean visitanteCriar, boolean visitanteExcluir, boolean visitanteRelatorios, boolean tesourariaVisualizar, boolean tesourariaEditar, boolean tesourariaCriar, boolean tesourariaExcluir, boolean tesourariaRelatorios, boolean administracaoVisualizar, boolean administracaoEditar, boolean administracaoCriar, boolean administracaoExcluir, boolean administracaoRelatorios) {
        this.id = id;
        this.nome = nome;
        this.descricao = descricao;
        this.email = email;
        this.membroVisualizar = membroVisualizar;
        this.membroEditar = membroEditar;
        this.membroCriar = membroCriar;
        this.membroExcluir = membroExcluir;
        this.membroRelatorios = membroRelatorios;
        this.visitanteVisualizar = visitanteVisualizar;
        this.visitanteEditar = visitanteEditar;
        this.visitanteCriar = visitanteCriar;
        this.visitanteExcluir = visitanteExcluir;
        this.visitanteRelatorios = visitanteRelatorios;
        this.tesourariaVisualizar = tesourariaVisualizar;
        this.tesourariaEditar = tesourariaEditar;
        this.tesourariaCriar = tesourariaCriar;
        this.tesourariaExcluir = tesourariaExcluir;
        this.tesourariaRelatorios = tesourariaRelatorios;
        this.administracaoVisualizar = administracaoVisualizar;
        this.administracaoEditar = administracaoEditar;
        this.administracaoCriar = administracaoCriar;
        this.administracaoExcluir = administracaoExcluir;
        this.administracaoRelatorios = administracaoRelatorios;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public boolean isMembroVisualizar() {
        return membroVisualizar;
    }

    public void setMembroVisualizar(boolean membroVisualizar) {
        this.membroVisualizar = membroVisualizar;
    }

    public boolean isMembroEditar() {
        return membroEditar;
    }

    public void setMembroEditar(boolean membroEditar) {
        this.membroEditar = membroEditar;
    }

    public boolean isMembroCriar() {
        return membroCriar;
    }

    public void setMembroCriar(boolean membroCriar) {
        this.membroCriar = membroCriar;
    }

    public boolean isMembroExcluir() {
        return membroExcluir;
    }

    public void setMembroExcluir(boolean membroExcluir) {
        this.membroExcluir = membroExcluir;
    }

    public boolean isMembroRelatorios() {
        return membroRelatorios;
    }

    public void setMembroRelatorios(boolean membroRelatorios) {
        this.membroRelatorios = membroRelatorios;
    }

    public boolean isVisitanteVisualizar() {
        return visitanteVisualizar;
    }

    public void setVisitanteVisualizar(boolean visitanteVisualizar) {
        this.visitanteVisualizar = visitanteVisualizar;
    }

    public boolean isVisitanteEditar() {
        return visitanteEditar;
    }

    public void setVisitanteEditar(boolean visitanteEditar) {
        this.visitanteEditar = visitanteEditar;
    }

    public boolean isVisitanteCriar() {
        return visitanteCriar;
    }

    public void setVisitanteCriar(boolean visitanteCriar) {
        this.visitanteCriar = visitanteCriar;
    }

    public boolean isVisitanteExcluir() {
        return visitanteExcluir;
    }

    public void setVisitanteExcluir(boolean visitanteExcluir) {
        this.visitanteExcluir = visitanteExcluir;
    }

    public boolean isVisitanteRelatorios() {
        return visitanteRelatorios;
    }

    public void setVisitanteRelatorios(boolean visitanteRelatorios) {
        this.visitanteRelatorios = visitanteRelatorios;
    }

    public boolean isTesourariaVisualizar() {
        return tesourariaVisualizar;
    }

    public void setTesourariaVisualizar(boolean tesourariaVisualizar) {
        this.tesourariaVisualizar = tesourariaVisualizar;
    }

    public boolean isTesourariaEditar() {
        return tesourariaEditar;
    }

    public void setTesourariaEditar(boolean tesourariaEditar) {
        this.tesourariaEditar = tesourariaEditar;
    }

    public boolean isTesourariaCriar() {
        return tesourariaCriar;
    }

    public void setTesourariaCriar(boolean tesourariaCriar) {
        this.tesourariaCriar = tesourariaCriar;
    }

    public boolean isTesourariaExcluir() {
        return tesourariaExcluir;
    }

    public void setTesourariaExcluir(boolean tesourariaExcluir) {
        this.tesourariaExcluir = tesourariaExcluir;
    }

    public boolean isTesourariaRelatorios() {
        return tesourariaRelatorios;
    }

    public void setTesourariaRelatorios(boolean tesourariaRelatorios) {
        this.tesourariaRelatorios = tesourariaRelatorios;
    }

    public boolean isAdministracaoVisualizar() {
        return administracaoVisualizar;
    }

    public void setAdministracaoVisualizar(boolean administracaoVisualizar) {
        this.administracaoVisualizar = administracaoVisualizar;
    }

    public boolean isAdministracaoEditar() {
        return administracaoEditar;
    }

    public void setAdministracaoEditar(boolean administracaoEditar) {
        this.administracaoEditar = administracaoEditar;
    }

    public boolean isAdministracaoCriar() {
        return administracaoCriar;
    }

    public void setAdministracaoCriar(boolean administracaoCriar) {
        this.administracaoCriar = administracaoCriar;
    }

    public boolean isAdministracaoExcluir() {
        return administracaoExcluir;
    }

    public void setAdministracaoExcluir(boolean administracaoExcluir) {
        this.administracaoExcluir = administracaoExcluir;
    }

    public boolean isAdministracaoRelatorios() {
        return administracaoRelatorios;
    }

    public void setAdministracaoRelatorios(boolean administracaoRelatorios) {
        this.administracaoRelatorios = administracaoRelatorios;
    }

    
    @Override
    public boolean equals(Object o) {
            if (o == null) return false;
            if (this == o) return true;
            boolean result = false;
            if (o instanceof Visitante) {
                Visitante outro = (Visitante) o;
                result = this.getNome() != null && 
                         this.getNome().equals(outro.getNome());
            }
            return result;
        }

        @Override
        public int hashCode() {
            int result = getNome() != null ? getNome().hashCode() : 41;
            return result;
        }
        
        @Override
        public String toString() {
            return getNome() + " - " + getId();
        }
    
    
}
